<?php

namespace app\admin\controller;
use app\admin\model\Category as CategoryModel;
use app\admin\validate\CategoryValidate;
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept,fs-token");
header('Access-Control-Allow-Methods: GET, POST');
/**
 * @title 商品分类管理
 * @group Admin
 */
class Category extends Base
{
    /**
     * @title 添加商品分类
     * @author 开发者
     * @url /admin/category/save
     * @method POST/GET
     * @param name:name require:1 default:null type:varchar desc:分类名称
     * @param name:parent_id require:0 default:0 type:int desc:父级分类id 默认为0主分类
     * @param name:sort require:0 default:50 type:int desc:排序指数，越小越靠前
     * @return  id:商品分类id
     * @return  name:分类名称
     * @return parent_id:父级分类id
     * @return is_parent: 是否为父节点，0为否，1为是
     * @return sort:排序指数，越小越靠前
     * @return update_time:更新时间
     */
    public function save(){
        $data = [
            'name' => input('name'),
            'parent_id' => input('parent_id')?input('parent_id'):0,
            'sort' => input('sort')?input('sort'):50,
        ];
        (new CategoryValidate())->goCheck();
        //判断是否为父节点
        if($data['parent_id']){
            $data['is_parent'] = 0;
        }else{
            $data ['is_parent'] =1;
        }
        $result = CategoryModel::create($data);
        $this->apiReturn(200,'添加成功',$result);
    }
    /**
     * @title 显示商品的无限极分类
     * @author 开发者
     * @url /admin/category/listCate
     * @method POST/GET
     * @return  id:商品分类id
     * @return  name:分类名称
     * @return parent_id:父级分类id
     * @return is_parent: 是否为父节点，0为否，1为是
     * @return sort:排序指数，越小越靠前
     * @return update_time:更新时间
     * @return deep:分类深度 ,0 代表顶级分类1代表一级分类
     */
    public function listCate(){
        $result = CategoryModel::select();
        $data = getTree($result);
        $this->apiReturn(200,$data);
    }

}
